<?php
// -----------------------------------------------------------------------------
// include
// -----------------------------------------------------------------------------

include "../config/config.php";
include "../auth.php";
include "../DBManager.php";

// -----------------------------------------------------------------------------
// 访问设置
// -----------------------------------------------------------------------------

if (!isset($_POST["categoryId"]) || !isset($_POST["categoryTitle"]) || !isset($_POST["categoryDescription"])) {
    exit("需要传入有效的参数！");
}

$categoryId = $_POST['categoryId'];
$categoryTitle = $_POST["categoryTitle"];
$categoryDescription = $_POST["categoryDescription"];

// -----------------------------------------------------------------------------
// 时区设置
// -----------------------------------------------------------------------------

date_default_timezone_set($region);

$timeLastEdit = (string)time();

// -----------------------------------------------------------------------------
// 数据库相关设置
// -----------------------------------------------------------------------------

$dbPath = "../" . $dbPath;
$db = new DBManager("sqlite:" . $dbPath);

// -----------------------------------------------------------------------------

if (!$db->checkIfCategoryExistsById($categoryId)) {
    exit("修改失败，因为指定的「分类id」不存在！");
}

/**
 * 一，判断分类标题是否已经存在
 * 二，如果已经存在，判断已经存在的分类的id与这里获取到的id是不是相同。
 *      如果相同，则表示标题没有被修改，允许执行修改。
 *      如果不相同，则表示有另一个id想使用已经存在的标题，拒绝。
 */
if ($db->checkIfCategoryExistsByTitle($categoryTitle)) {
    $categoryDetails = $db->getCategoryDetailsByTitle($categoryTitle);
    if ($categoryDetails["id"] !== $categoryId) {
        exit("修改失败，因为指定的「分类名」已经存在！");
    }
}

// -----------------------------------------------------------------------------

$arr = [];
$arr["timeLastEdit"] = $timeLastEdit;
$arr["title"] = $categoryTitle;
$arr["description"] = $categoryDescription;

$db->updateCategory($categoryId, $arr);
echo "修改成功！";
